Operations:

Format

Syntax:

Operation:

Operands:

Architecture revision

Opcode

1

pmax.ub Rd, Rx, Ry

If ( Rx[31:24] > Ry[31:24] )  then Rd[31:24] = Rx[31:24] else Rd[31:24] = Ry[31:24] ;
If ( Rx[23:16] > Ry[23:16] )  then Rd[23:16] = Rx[23:16] else Rd[23:16] = Ry[23:16] ;
If ( Rx[15:8] > Ry[15:8] )  then Rd[15:8] = Rx[15:8] else Rd[15:8] = Ry[15:8] ;
If ( Rx[7:0] > Ry[7:0] )  then Rd[7:0] = Rx[7:0] else Rd[7:0] = Ry[7:0] ;
{d, x, y} ∈ {0, 1, …, 15}

Rev1+

111

Rx

00000

Ry

001000111000

Rd

3

4

5

4

12

4

2

pmax.sh Rd, Rx, Ry

If ( Rx[31:16] > Ry[31:16] )  then Rd[31:16] = Rx[31:16] else Rd[31:16] = Ry[31:16] ;
If ( Rx[15:0] > Ry[15:0] )  then Rd[15:0] = Rx[15:0] else Rd[15:0] = Ry[15:0] ;
{d, x, y} ∈ {0, 1, …, 15}

Rev1+

111

Rx

00000

Ry

001000111001

Rd

3

4

5

4

12

4

Description

Compute the maximum values of pairs of packed unsigned bytes (pmax.ub) or packed signed halfwords (pmax.sh).

Status Flags:

Format I:

Q:

Not affected.

V:

( Rx[7:0] > Ry[7:0] )

N:

( Rx[15:8] > Ry[15:8] )

Z:

( Rx[23:16] > Ry[23:16] )

C:

( Rx[31:24] > Ry[31:24] )

Format II:

Q:

Not affected.

V:

Not affected.

N:

Not affected.

Z:

( Rx[15:0] > Ry[15:0] )

C:

( Rx[31:16] > Ry[31:16] )